package com.ruoyi.qywx;

/**
 * @author : hcl
 * @Date : 2023/8/8
 */
public class EntityCreator {

    public static void main(String[] args) {
        String text = "access_token\t是\t调用接口凭证\n" +
                "type\t是\t联系方式类型,1-单人, 2-多人\n" +
                "scene\t是\t场景，1-在小程序中联系，2-通过二维码联系\n" +
                "style\t否\t在小程序中联系时使用的控件样式，详见附表\n" +
                "remark\t否\t联系方式的备注信息，用于助记，不超过30个字符\n" +
                "skip_verify\t否\t外部客户添加时是否无需验证，默认为true\n" +
                "state\t否\t企业自定义的state参数，用于区分不同的添加渠道，在调用“获取外部联系人详情”时会返回该参数值，不超过30个字符\n" +
                "user\t否\t使用该联系方式的用户userID列表，在type为1时为必填，且只能有一个\n" +
                "party\t否\t使用该联系方式的部门id列表，只在type为2时有效\n" +
                "is_temp\t否\t是否临时会话模式，true表示使用临时会话模式，默认为false\n" +
                "expires_in\t否\t临时会话二维码有效期，以秒为单位。该参数仅在is_temp为true时有效，默认7天，最多为14天\n" +
                "chat_expires_in\t否\t临时会话有效期，以秒为单位。该参数仅在is_temp为true时有效，默认为添加好友后24小时，最多为14天\n" +
                "unionid\t否\t可进行临时会话的客户unionid，该参数仅在is_temp为true时有效，如不指定则不进行限制\n" +
                "is_exclusive\t否\t是否开启同一外部企业客户只能添加同一个员工，默认为否，开启后，同一个企业的客户会优先添加到同一个跟进人\n" +
                "conclusions\t否\t结束语，会话结束时自动发送给客户，可参考“结束语定义”，仅在is_temp为true时有效";

        creator(text);
    }


    static void creator(String text) {
        String[] lines = text.split("\n");
        StringBuilder builder = new StringBuilder();
        for (String line : lines) {
            String[] bean = line.split("\t");
            if (bean.length > 1) {
                if (bean[1].contains("代开发")) {
                    builder.append("\n// ").append(bean[1].substring(0, bean[1].indexOf("代开发")));
                } else {
                    builder.append("\n// ").append(bean[1]);
                }
                if (bean[0].contains("_")) {
                    String[] names = bean[0].split("_");
                    String name = names[0];
                    for (int i = 1; i < names.length; i++) {
                        name += names[i].substring(0, 1).toUpperCase();
                        name += names[i].substring(1);
                    }
                    builder.append("\n@Alias(\"" + bean[0] + "\") ");
                    builder.append("\nprivate String ").append(name).append(";");
                } else {
                    builder.append("\nprivate String ").append(bean[0]).append(";");
                }
            }
        }
        System.out.println(builder);
    }
}
